package poo.exo1;

public class CompteCourant extends CompteSansLimite
{
	private double decouvert;

	public CompteCourant(String nom, int numeroCompte, double solde) throws MyException
	{
		super(nom, numeroCompte, solde);

		decouvert = 0;
		type = 1;
	}

	public CompteCourant(String nom, int numeroCompte, double solde, double decouvert) throws MyException
	{
		super(nom, numeroCompte, solde);

		if (decouvert > 0)
		{
			throw new MyException("Erreur: Le découvert ne peut être positif");
		}

		this.decouvert = decouvert;
		type = 1;
	}

	public void modifierDecouvert(double nouvDecouvert) throws MyException
	{
		if (this.ouvert == false)
		{
			throw new MyException("Erreur: Votre compte a été cloturé");
		}
		if (nouvDecouvert > 0)
		{
			throw new MyException("Erreur: Le découvert ne peut être positif");
		}
		if (solde < 0)
		{
			throw new MyException("Erreur: Le découvert ne peut être modifié car votre solde est négatif");
		}

		decouvert = nouvDecouvert;
		System.out.println("Votre découvert a été modifié. Nouvelle valeur: " + decouvert + " €.");

	}

	@Override
	public boolean retirer(double somme) throws MyException
	{
		if (this.ouvert == false)
		{
			throw new MyException("Erreur: Votre compte a été cloturé.");
		}
		if ((solde - somme) < decouvert)
		{
			throw new MyException("Erreur: Vous ne pouvez retirer, car vous seriez au-dessous du découvert.");
		}

		solde -= somme;
		System.out.println("Retrait de " + somme + " ");
		return true;
	}

	@Override
	public boolean deposer(double somme) throws MyException
	{
		if (this.ouvert == false)
		{
			throw new MyException("Erreur: Votre compte a été cloturé.");
		}

		solde += somme;
		System.out.println("Dépôt de " + somme + " €.");
		return true;
	}

	@Override
	public boolean transferer(double somme, Compte cible) throws MyException
	{
		if (this.ouvert == false)
		{
			throw new MyException("Erreur: Votre compte a été cloturé.");
		}

		return true;

	}
}
